// -----------------------------------------------------------
// 其他方法区
// -----------------------------------------------------------
var utils = {
	id : 'utils',
	/**
	 * 全屏相应法方
	 * 
	 * @param {}
	 *            action
	 */
	fullScreen : function() {
		var fullScreen = document.getElementById("fullScreen");
		if (fullScreen.innerHTML == "全屏") {
			fullScreen.innerHTML = "取消全屏";
			Ext.getCmp('mnorth').setHeight(37);
			var topBanner = document.getElementById("topBanner");// 抬头
			topBanner.style.display = 'none';
			Ext.getCmp('mainpanel').doLayout();
		} else {
			fullScreen.innerHTML = "全屏";
			Ext.getCmp('mnorth').setHeight(83);
			var topBanner = document.getElementById("topBanner");// 抬头
			topBanner.style.display = 'block';
			Ext.getCmp('mainpanel').doLayout();
		}
	},
	getStyle : function(obj, attr) {
		if (obj.currentStyle) {
			return obj.currentStyle[attr];
		} else {
			return document.defaultView.getComputedStyle(obj, false)[attr];
		}
	},
	logoutsys : function() {
		window.location = "LogOutServlet";
	},
	/**
	 * 日期格式化方法
	 * 
	 * @param {}
	 *            v 日期
	 * @param {}
	 *            old 当前日期的格式 //YmdHis
	 * @param {}
	 *            now 输出日期的格式 //Y年m月d日
	 * @return {}
	 */
	formatNormal : function(v, old, now) {
		var da = Date.parseDate(v, old);
		da = Ext.util.Format.date(da, now);
		return da;
	},
	setGG : function(gg) {
		if (document.getElementById('nlgg')) {
			document.getElementById('nlgg').innerHTML = gg;
		}
	},
	/**
	 * 打开加载
	 * 
	 * @param {}
	 *            el Ext.Element 对象
	 * @param {}
	 *            msg 消息体
	 */
	showMask : function(el, msg) {
		var loadMask = new Ext.LoadMask(el, {
					msg : msg
				});
		loadMask.show();
		return loadMask;
	},
	/**
	 * 关闭加载
	 * 
	 * @param {}
	 *            loadMask 方法showMask()返回的对象
	 */
	hideMask : function(loadMask) {
		if (loadMask) {
			loadMask.hide();
		}
	},

	/**
	 * 无障碍提示-自动关闭
	 * 
	 * @param {}
	 *            title 标题
	 * @param {}
	 *            msg 消息体
	 * @param {}
	 *            delay 延迟时间,默认2500
	 */
	hideAutoNotification : function(title, msg, delay) {
		title = title || "消息提示";
		delay = delay || 3000;
		var notifyWin = Ext.create('widget.uxNotification', {
					title : title,
					closeAction : 'hide',
					position : 'br',
					useXAxis : false,
					iconCls : 'x-icon-waiting',
					html : '<font color=blue>' + msg + '</font>'
				});
		notifyWin.show();
		window.setTimeout(function() {
					notifyWin.hide();
				}, delay);
	},

	/**
	 * 无障碍提示-不自动关闭
	 * 
	 * @param {}
	 *            title 标题
	 * @param {}
	 *            msg 消息体
	 */
	showNotification : function(title, msg) {
		var notifyWin = Ext.create('widget.uxNotification', {
					title : title,
					closeAction : 'hide',
					position : 'br',
					manager : 'demo1',
					useXAxis : false,
					iconCls : 'x-icon-waiting',
					html : '<font color=blue>' + msg + '</font>'
				});
		notifyWin.show();
		return notifyWin;
	},

	/**
	 * 关闭 不自动无障碍提示
	 * 
	 * @param {widget.uxNotification}
	 *            win 标题
	 * @param {int}
	 *            delay 消息体
	 */
	hideNotification : function(win, delay) {
		if (win) {
			window.setTimeout(function() {
						win.hide();
					}, delay || 1);
		}
	},

	/**
	 * 超时所用的登陆框
	 * 
	 * @param {}
	 *            msg 显示消息
	 */
	showLoginWin : function(msg) {
		var win = Ext.getCmp(utils.id + 'loginWin');
		if (!win) {
			win = Ext.create('Ext.window.Window', {
						title : '登陆',
						id : utils.id + 'loginWin',
						width : 278,
						height : 160,
						closable : true,
						modal : true,
						collapsible : true,
						layout : 'fit',
						items : [{
							xtype : 'form',
							frame : true,
							border : false,
							defaultType : 'textfield',
							defaults : {
								labelWidth : 50,
								labelAlign : 'right'
							},
							items : [{
								xtype : 'panel',
								frame : true,
								border : false,
								html : '<div id='
										+ utils.id
										+ '_msg align="center" style="color: #FF0000">'
										+ msg + '</div>'
							}, {
								fieldLabel : '用户名',
								id : utils.id + '_userId',
								maxLength : 20,
								maxLengthText : '密码不能高于20位.',
								allowBlank : false,
								blankText : '用户名不能为空!',
								regex : /^[0-9a-zA-Z]\w{1,19}$/,
								regexText : '以字母开头，长度在1~20之间，只能包含字符、数字和下划线。'
							}, {
								fieldLabel : '密码',
								id : utils.id + '_passWord',
								inputType : 'password',
								maxLength : 20,
								maxLengthText : '密码不能高于20位.',
								allowBlank : false,
								blankText : '密码不能为空!',
								listeners : {
									specialkey : function(field, e) {
										if (e.getKey() == e.ENTER) {
											utils.save(win);
										}
									}
								}
							}]
						}],
						buttons : [{
									text : '确定',
									formBind : true,
									disabled : false,
									handler : function() {
										utils.save(win);
									}
								}, {
									text : '重置',
									handler : function() {
										win.down('form').getForm().reset();
									}
								}]
					});
		} else {
			document.getElementById(utils.id + '_msg').innerHTML = msg;
		}
		win.show();
		Ext.getCmp(utils.id + '_userId').focus();
	},
	save : function(win) {
		var form = win.down('form').getForm();
		if (form.isValid()) {
			var msk = utils.showMask(Ext.getBody(), '正在登陆中....');
			Ext.Ajax.request({
						url : "Login",
						method : "POST",
						params : {
							username : Ext.getCmp(utils.id + '_userId')
									.getValue(),
							password : Ext.getCmp(utils.id + '_passWord')
									.getValue(),
							hashcode:hashcode
						},
						success : function(response) {
							var result = Ext.JSON.decode(response.responseText);
							if (!result.success) {
								utils.hideMask(msk);
								Ext.MessageBox.show({
											title : '失败',
											msg : result.errors.message,
											buttons : Ext.MessageBox.OK,
											icon : Ext.MessageBox.ERROR
										});
							} else {
								utils.hideMask(msk);
								win.close();
							}
						},
						failure : function(response) {
							utils.hideMask(msk);
							Ext.MessageBox.show({
										title : '失败',
										msg : '服务器连接失败，请稍候再试！',
										buttons : Ext.MessageBox.OK,
										icon : Ext.MessageBox.ERROR
									});
						}
					});
		}
	}

}